Mechanical modeling programs and other Computer Aided Design (CAD) programs allow users to interactively create and position geometric bodies relative to each other in a mechanical model. Such programs are typically good at modeling the kinematic (i.e., rigid-body) relationships between different bodies. These kinematic relationships are usually inferred by constraints applied to individual (or sets of) elements. A constraint removes or limits one or more degrees of freedom (DOF) of movement of one body (or group of bodies) in relation to another body (or group of bodies). For example, a piston head body can be constrained so that its motion is along the direction of an engine body's cylinder axis. Kinematic relationships allow designers to understand how parts fit together and move in relationship to one another.
Dynamic simulation is used to apply load and motion histories to models so that users understand the behavior (e.g., accelerations, velocities, displacements) of model bodies. Unlike kinematics, where the motion relationship between different elements is defined by inter-element constraints, dynamic simulation requires that DOF relationships be defined at the “joints” where bodies (or groups of bodies) connect.
In typical mechanical modeling programs, users are required to manually convert kinematic constraints into joints for dynamic simulation purposes. This commonly entails deleting constraints from the model and adding joints to the model. Besides being labor intensive—imagine a model such as an engine with hundreds of moving parts—this procedure allows for the creation of redundant information that can undermine a dynamic simulation. Some programs semi-automatically translate constraints into joints but still require user input to some degree and do not associate constraints with their respective joints so that a change to a constraint is not reflected in its respective joint.
Manually converting a model into one suitable for dynamic simulation can pose additional difficulties. A model can include hundreds of individual bodies, but typically only a few move relative to the others. Most are connected as rigid-body assemblies. It may be difficult for users to accurately identify groups of moving and fixed bodies. Moreover, there may be bodies in the model that translate to unconstrained DOFs in the dynamic simulation model (such as a bolt that can spin around its axis). Such unconstrained DOFs can create under-constrained situations, or spurious DOFs in a dynamic simulation.